home *** CD-ROM | disk | FTP | other *** search
/ Racing Games (Spidla) / zavodni.iso / Fun Racing / src / FRMonsterHummer.h < prev    next >
Encoding:
C/C++ Source or Header  |  2003-06-19  |  2.9 KB  |  114 lines

  1.  
  2.  
  3. #ifndef FRMONSTERHUMMER_H
  4. #define FRMONSTERHUMMER_H
  5.  
  6. #include "FRCar.h"
  7.  
  8. class FRMonsterHummer : public FRCar
  9. {
  10.     TERTTIDeclaration;
  11.  
  12. public:
  13.  
  14.     FRMonsterHummer(TEVector &rCenter, Float fInitYRot)
  15.     {
  16.         TEOBoundingBox *pOBox = new TEOBoundingBox;
  17.         TEAABoundingBox BBox;
  18.         TEVector Min, Max;
  19.         TEEngine *pEngine = TEEngine::GetEngine();
  20.         TESoundManager* pSound = TESoundManager::GetSoundManager();
  21.         UInt16 usCount;
  22.         TEString Name;
  23.         
  24.         Name = "motor2.ogg";
  25.         m_pMotor = pSound->GetSound(Name);
  26.         Name = "brake.ogg";
  27.         m_pBraking = pSound->GetSound(Name);
  28.         Name = "horn1.ogg";
  29.         m_pHorn = pSound->GetSound(Name);
  30.         
  31.         m_fMass = 3500.0f;
  32.  
  33.         m_fMaxRPM = 5000.0f;
  34.         m_fRotFactor = 105.0f;
  35.  
  36.         m_ulNumGears = 5;
  37.         m_aGears = new FRGearInfo[5];
  38.  
  39.         m_aGears[0].fRPMChange = 3500.0f;
  40.         m_aGears[0].fRPMTrans = -100.0f;
  41.         m_aGears[1].fRPMChange = 4000.0f;
  42.         m_aGears[1].fRPMTrans = 120.0f;
  43.         m_aGears[2].fRPMChange = 3000.0f;
  44.         m_aGears[2].fRPMTrans = 195.0f;
  45.         m_aGears[3].fRPMChange = 500.0f;
  46.         m_aGears[3].fRPMTrans = 270.0f;
  47.         m_aGears[4].fRPMChange = 175.0f;
  48.         m_aGears[4].fRPMTrans = 500.0f;
  49.  
  50.         m_Center = m_OldCenter = rCenter;
  51.         m_Rotation = TEVector(0.0f, fInitYRot, 0.0f);
  52.  
  53.         m_pModelRef = TEModelManager::GetModelManager()->GetModel("monsterhummer.tmf");
  54.         TEAssert(m_pModelRef);
  55.  
  56.         m_pModelRef->SetAnimation(0);
  57.         m_pModelRef->SetTimeScale(0);
  58.         m_pModelRef->SetLoopAnimation(true);
  59.         
  60.         BBox = m_pModelRef->GetModelBBox();
  61.         BBox.GetData(Min, Max);
  62.         m_CarSize = Max - Min;
  63.  
  64.         m_Center.m_fX = m_OldCenter.m_fX = rCenter.m_fX;
  65.         m_Center.m_fY = m_OldCenter.m_fY = m_fDeltaY = TEAbs(Min.m_fY) + 0.05f;
  66.         m_Center.m_fZ = m_OldCenter.m_fZ = rCenter.m_fZ;
  67.  
  68.         pOBox->SetData(m_Center, Min, Max, m_Rotation);
  69.  
  70.         m_pBoundingVolume = pOBox;
  71.  
  72.         m_fFrontAxis = 0.0f;
  73.         m_fRearAxis = -42.0f;
  74.  
  75.         m_fWheelWidth = 9.0f;
  76.         m_fWheelMov = 5.5f;
  77.  
  78.         m_aLightPos[0] = TEVector(-4.0f,  4.0f,  41.25f);
  79.         m_aLightPos[1] = TEVector( 4.0f,  4.0f,  41.25f);
  80.         m_aLightPos[2] = TEVector(-8.5f, 12.5f, -32.0f);
  81.         m_aLightPos[3] = TEVector( 8.5f, 12.5f, -32.0f);
  82.  
  83.         m_fBrakeEfficiency = 14.0f;
  84.  
  85.         UpdateVectors();
  86.  
  87.         if(ms_bSmoke)
  88.         {
  89.             TEVector Center = m_pBoundingVolume->GetCenter();
  90.             
  91.             m_usNumExhaust = 2;
  92.             m_aExhaustPos[0] = TEVector(-5.0f, 0.0f, -43.0f);
  93.             m_aExhaustPos[1] = TEVector( 5.0f, 0.0f, -43.0f);
  94.             
  95.             for(usCount = 0; usCount < m_usNumExhaust; usCount++)
  96.             {
  97.                 TEVector Tmp = Center + m_aExhaustPos[usCount].m_fX * m_Right +
  98.                     m_aExhaustPos[usCount].m_fY * m_Up + m_aExhaustPos[usCount].m_fZ * m_Forward;
  99.                 
  100.                 m_aExhaust[usCount] = new TEParticleFX(Tmp, 2, 4, 1.8f, 0, 0, 0, m_Up, 250, 1000,
  101.                     255, 1.0f, true, false);
  102.  
  103.                 m_aExhaust[usCount]->SetColor(255, 255, 255);
  104.                 
  105.                 pEngine->AddParticleSystem(m_aExhaust[usCount]);        
  106.             }
  107.         }
  108.  
  109.         if(m_pMotor != NULL)
  110.             m_pMotor->Play3D(m_Center, m_Velocity, TESOUND_LOOP, 1.0f);
  111.     }
  112. };
  113.  
  114. #endif